<script setup lang="ts">
import * as echarts from 'echarts';
import {ref,onMounted} from 'vue'
const charts = ref()
//地图json配置文件
import chinaJson from './china.json'
// 注册中国地图
echarts.registerMap('china',chinaJson as any)
onMounted(()=>{
  const myCharts = echarts.init(charts.value)
  myCharts.setOption({
    geo:{
      map: 'china',//中国地图
      roam: true,//鼠标缩放的效果
      //地图的位置调试
      left: 150,
      top: 150,
      right: 150,
      zoom:1.2,
      bottom: 0,
      //地图上的文字的设置
      label: {
        show: true,//文字显示出来
        color: 'white',
        fontSize: 14
      },
      itemStyle: {
        //每一个多边形的样式
        color: {
          type: 'linear',
          x: 0,
          y: 0,
          x2: 0,
          y2: 1,
          colorStops: [{
            offset: 0, color: 'red' // 0% 处的颜色
          }, {
            offset: 1, color: 'blue' // 100% 处的颜色
          }],
          global: false // 缺省为 false
        },
        opacity: .8
      },
      //地图高亮的效果
      emphasis: {
        itemStyle: {
          color: 'red'
        },
        label: {
          fontSize: 40
        }
      }
    },
    grid:{
      left:0,
      top:0,
      right:0,
      bottom:0,
    },
    series:[
      {
        type:'lines',//航线的系列
        data:[
          {
            coords:[
              [116.405285, 39.904989],  // 起点
              [119.306239, 26.075302]
            ],
            lineStyle:{
              color:'white',
              width:'3'
            },
          },
          {
            coords: [
              [116.405285, 39.904989],  // 起点
              [114.298572,30.584355]   // 终点

            ],
            // 统一的样式设置
            lineStyle: {
              color:'white',
              width:'3'
            }
          }
        ],
        //是否显示特效
        effect:{
          show:true,
          symbol:'arrow',
          color:'orange',
          symbolSize:'10'
        }
      }
    ],
  })
})
</script>

<template>
  <div class="map-container" >
    <div class="map" ref="charts">

    </div>
  </div>
</template>

<style scoped lang="scss">
.map-container{
  margin:60px 60px 0;
  .map{
    width: 100%;
    height: 100%;
  }
}
</style>